#pragma once
#include "cdirenderlist.h"
#include <list>
using namespace std;

class CdiRenderObjectList :
  public CdiRenderList
{
private:
  list< CdiRenderBase* >* m_objects;

public:
  CdiRenderObjectList();
  
  ~CdiRenderObjectList();

public:
  // Public Methods                     
  ////////////////////////////////////////

  // Render all the objects in the list
  ////////////////////////////////////////
  bool RenderAll( LPDIRECT3DDEVICE9 pDevice );

  // Render a specific Item
  ////////////////////////////////////////
  bool Render( int item, LPDIRECT3DDEVICE9 pDevice );

  // Get the Item Count
  ////////////////////////////////////////
  const int GetItemCount();

  // Get a specific Item
  ////////////////////////////////////////
  CdiRenderBase* GetItem(int itemIndex );

  // Get a specific Item
  ////////////////////////////////////////
  bool AddObject( CdiRenderBase* object );

  // Remove an object
  ////////////////////////////////////////
  bool RemoveObject( CdiRenderBase* object );

  // Remove an object
  ////////////////////////////////////////
  bool RemoveObject( int index );

};